home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu143.dms / pu143.adf / FIXDISK.DOC / FIXDISK.DOC
Text File  |  1997-10-19  |  11KB  |  248 lines

  1.  
  2.  
  3.                               FixDisk V1.0
  4.                      © Copyright Werner Gunther 1989
  5.                                 Freeware
  6.                     USE THIS PROGRAM AT YOUR OWN RISK
  7.  
  8.  
  9.    FixDisk is a program to recover as much as possible from a defective
  10.    disk. I don't claim it is better than DiskDoctor or DiskSalv, but it
  11.    has some features the others don't have: First of all it can recover
  12.    damaged (unreadable) tracks, it has functions to check file integrity,
  13.    to check the directory structure and functions to undelete, copy or
  14.    show (even defective) files, fix corrupted directory pointers, etc.
  15.    Everything can be selected with an intuition interface, so everyone
  16.    can determine what action should take place by himself.
  17.  
  18.    Now the bad news: The program does not keep track of "loose blocks",
  19.    i.e. files without a file header - like DiskSalv does. It does only
  20.    work with disks and partitions using a maximum of 4063 blocks. It may
  21.    work with larger disks too, but I don't have a hard disk, so I
  22.    couldn't test it.
  23.  
  24.    Disks with more than 4063 blocks are rejected by the program. You may
  25.    force the program to accept <48 Mb partitions adding DOOM to the
  26.    command line (i.e. FixDisk doom). As I said before, it has not been
  27.    tested and should only be used if anything else failed, and you're
  28.    just about to format the partition.
  29.  
  30.    USAGE:
  31.  
  32.    After starting FixDisk from Cli or Workbench you will see a set of
  33.    gadgets with the available drives on the top of the window. Choose the
  34.    desired drive by clicking its gadget. If the choosen drive is a 3.5in
  35.    or a 5.25in drive you will be asked to insert a disk. Now the program
  36.    starts to read in the disk, cylinder by cylinder, searching for file
  37.    and directory headers. This may take a while, please be patient.
  38.    Beside read errors, you may get some other messages at this point:
  39.  
  40.    Block 0 has to start with DOS or KICK. If it does not, you are asked
  41.    if you want to fix it.
  42.  
  43.    The program couldn't find the root block and FixDisk wants to build a
  44.    new one.
  45.  
  46.    The disk isn't validated, the program is going to validate it.
  47.  
  48.    There is no root block and no file header on the disk. The disk is
  49.    probably a custom disk or the Kickstart disk. FixDisk won't check
  50.    anything - and won't let you check, change or fix anything - except
  51.    read errors.
  52.  
  53.    You may press break Ctrl-C anytime if you want to abort this
  54.    operation. When the disk has been examined, you'll get a file
  55.    requester on the left half of the window. The first column shows the
  56.    key (the block number where the file header has been found) followed
  57.    by DEL for deleted files or -->, followed by the filename. Red (Color
  58.    3) entries are directories. Click on the filename to select it or
  59.    Shift-click for multiple selections. Double click a directory to enter
  60.    that directory.
  61.  
  62.    The right half of the window is filled with 17 Gadgets. As you will
  63.    notice, some of them are disabled at startup. These are gadgets that
  64.    will write on to the disk. To enable them you have to choose Write
  65.    Enable from the Miscellaneous menu (there is only one menu anyway).
  66.  
  67.                                 THE GADGETS
  68.  
  69.    DIRECTORY - Parent
  70.  
  71.    This gadget is part of the file requester. The requester will show
  72.    the files from the parent directory.
  73.  
  74.    DIRECTORY - Root
  75.  
  76.    Same as above, but steps to the root directory.
  77.  
  78.    SHOW - Selected
  79.  
  80.    Shows a file in Hex or Ascii. Like all other commands, the file is
  81.    processed without using DOS, but each sector (block) is read in,
  82.    checked and displayed. It works exactly the same way Copy (see below)
  83.    would do, so you can use this function to see what exactly can be
  84.    recovered from a defective file. If the file is on a Standard File
  85.    System (non FFS) disk, you will be asked where the program should take
  86.    the file links from. Each block that belongs to a file is listed in
  87.    the file header block (and in one or more "file list blocks" if the
  88.    file is too large). On the Standard File System each data block has a
  89.    pointer to the next block belonging to the same file, too. So we have
  90.    two ways to determine how the file is build up: Using the links listed
  91.    in the file header, or using the inter-block links. Anyway, it is much
  92.    safer if you select the file header links, if only one block is wrong,
  93.    you'll get a lot of rubbish using the inter-block links.
  94.  
  95.    CHECK FILES - Selected
  96.  
  97.    This function checks the selected files. With the Standard File System
  98.    it is very easy to determine if a file is OK or defective, as each
  99.    data block has a checksum, a pointer to the file header, pointer to
  100.    the next block, etc. This is not the case with the FFS and there is no
  101.    way to determine if a given data block really belongs to that file.
  102.    So, even if the file passes the test, it may still be corrupted.
  103.  
  104.    CHECK FILES - Deleted
  105.  
  106.    Checks only deleted files, so you can see which one can be undeleted.
  107.  
  108.    CHECK FILES - All
  109.  
  110.    Checks all files.
  111.  
  112.    UNDELETE FILES - Selected
  113.  
  114.    The first thing this function does, is call Check Files. If the file
  115.    seems to be OK, the file header is inserted into the hash chain of its
  116.    parent directory and the bitmap will be updated, but the Bitmap Flag
  117.    will change to FALSE, just to make sure the disk is going to be
  118.    validated after this operation.
  119.  
  120.    UNDELETE FILES - All
  121.  
  122.    Tries to undelete all deleted files.
  123.  
  124.    COPY FILES - Selected
  125.  
  126.    Works like Show (see above). You'll be asked to enter a output path or
  127.    directory. If the directory gets full, you may enter a new path. If a
  128.    given file already exists in the destination directory, the program
  129.    will append ".2" to the filename. If ".2" exists too, you'll get
  130.    ".2.2". Don't tell me this is dumb, I know that already.
  131.  
  132.    Like Check File you may get some error messages while the program is
  133.    working. If a block doesn't seem to belong to a given file, you'll be
  134.    asked to SKIP IGNORE ABORT. Skip means the damaged block won't be
  135.    copied, Ignore means the block will be copied no matter what is on
  136.    that block, and Abort leaves Copy Files. Protection bits are
  137.    preserved, dates are not.
  138.  
  139.    COPY FILES - All
  140.  
  141.    Copies the entire disk, trying to recover as much as possible.
  142.  
  143.    WIPE FILES - Selected
  144.  
  145.    This function clears the file header of a deleted file. Utilities like
  146.    DiskDoctor and DiskSalv will try to recover all files, even if they
  147.    have been deleted. If you don't want some files to pop up again using
  148.    one of the programs above, you may use this function. Be warned: After
  149.    this operation you'll have to use a disk monitor or sector editor to
  150.    get the data back.
  151.  
  152.    WIPE FILES - All
  153.  
  154.    Purges all deleted files.
  155.  
  156.    DELETE - Selected
  157.  
  158.    Deletes a file, i.e. the file header will be taken out of its hash
  159.    chain and the bitmap updated. The Bitmap Flag will be set to FALSE as
  160.    in Undelete (see above). This function even works if the DOS delete
  161.    does return an error.
  162.  
  163.    DELETE - Faulty
  164.  
  165.    Checks all files and deletes those with errors. The program may ask
  166.    you before deleting a file, if you wish.
  167.  
  168.    INFO - Device
  169.  
  170.    Returns some information about the selected device.
  171.  
  172.    VALIDATE - Disk
  173.  
  174.    This is not the Amiga validator, but my own. The main difference
  175.    between them is that this one tries to repair the disk structure. You
  176.    may get some error reports: Loops in a hash chain, wrong or unreadable
  177.    file headers, checksum errors or Key Already Set, two files claiming
  178.    to own the same data block. The usual action that takes place is to
  179.    ask you if the corrupted file may be deleted. You may check what
  180.    exactly was wrong using Show and Check Files afterwards.
  181.  
  182.    RECOVER - Track
  183.  
  184.    This function tries to get as much as possible from a defective track.
  185.    It uses the RAWREAD command from the trackdisk.device and therefore
  186.    works with the trackdisk.device only. What it actually does, is to
  187.    RAWREAD the track into a buffer, search the syncs, and decode the
  188.    sector. This may take some seconds, the routine to decode isn't very
  189.    fast.
  190.  
  191.    If a sector sync is missing, the program tries to determine where the
  192.    sector has to start. This works sometimes, but is usually wrong.
  193.  
  194.    When the track has been decoded, you'll get a window displaying the
  195.    number of the sector (1-11), the first four longwords of that sector,
  196.    if the checksum is OK or BAD, and if that block is ALLOCated or FREE.
  197.    If an entry is red (color 3), the sector didn't have a sync. If,
  198.    instead of the first few bytes, you get Unreadable, the program
  199.    couldn't even work out where the sector should have been.
  200.  
  201.    If you are not satisfied with the result, you may click RETRY. This
  202.    will restart the procedure and usually gives a different result (if
  203.    the track has a hard error, i.e. a damaged surface).
  204.  
  205.    If you think the result is good (or good enough) click on WRITE. This
  206.    will format the track and write those sectors back.
  207.  
  208.    It may happen that the track can't be formatted. Click RETRY several
  209.    times, the defective part of the track may "fall" into the gap at some
  210.    point. If this doesn't seem to work, pull out the disk and insert a
  211.    new, EMPTY, even unformatted, disk and write the track on this disk.
  212.    Now comes the tricky part: Back-up the original disk and copy the
  213.    recovered track to the back-up with DiskZap, DiskX, Sectorama, etc.
  214.  
  215.    Hmmm... No, much too complicated. The Amiga is a multitasking machine!
  216.    Back-up the disk WHILE FixDisk is running, insert the back-up into the
  217.    drive you have selected and click RETRY.
  218.  
  219.                                   THE MENU
  220.  
  221.    There are actually only two menu items:
  222.  
  223.    Ignore Readerrors:
  224.  
  225.    Usually you get a requester asking RETRY IGNORE if an error occurs.
  226.    This may be very annoying if the disk has a lot of defective tracks.
  227.    This item will stop that requester popping up. It has also a second
  228.    function: If you are using the Copy function, the program will stop
  229.    every time a file seems to be damaged and ask what action should be
  230.    taken. With Ignore Readerrors on, errors are just listed, but the
  231.    program will act as if you have choosen IGNORE.
  232.  
  233.    Write Enable:
  234.  
  235.    Enables those gadgets that will write on to the disk.
  236.  
  237.    That's all. Well, almost. The program has about 80 requesters, some of
  238.    them have not been explained, but they should be self-explanatory.
  239.  
  240.    Send flames, bug reports, requests to:
  241.  
  242.    G35@DHDURZ1.BITNET
  243.  
  244.    Werner Gunther
  245.    Wingertspfad 12
  246.    D 6900 Heidelberg (FRG)
  247.  
  248.